package model;

import java.util.ArrayList;

import utilities.Key;

import com.jme3.math.Vector2f;
/*
 * Common interface to interact with all objects containing a PhysicalDatasetContainer
 */
public interface IPhysicalDataModelContainer {

	public void addPhysicalModel(IPhysicalDataModel model);

	public void removePhysicalModel(IPhysicalDataModel model);

	/*
	 * Parameters that are part of inherent characteristics of models
	 */
	public void updateParameters();

	//public ArrayList<Key> getModels();

	public Vector2f getLocation();

	public Vector2f getVelocity();

	public double getTotalMass();

	public double getTotalLuminosity();

	public double getOrbitalRadius();

	public double getTotalRadius();

	public double getTotalVolume();

	public double getAverageDensity();

	public double getTotalFullEnergy();

	public double getTotalMassEnergy();

	public double getTotalSpinEnergy();

	public double getTotalRadiationEnergy();

	public double getTotalGravEnergy();

	public double getTotalMagneticEnergy();

	public double getAverageAge();

	public double getTotalGravity();

	public double getAverageRotation();

	public double getAverageTemperature();

	public double getTotalMagField();

	public String getCurrentName();

	public ArrayList<Double> getMassList();

	public ArrayList<Double> getVolumeList();

	public ArrayList<Double> getDensityList();

	public ArrayList<Double> getFullEnergyList();

	public ArrayList<Double> getMassEnergyList();

	public ArrayList<Double> getSpinEnergyList();

	public ArrayList<Double> getRadiationEnergyList();

	public ArrayList<Double> getGravEnergyList();

	public ArrayList<Double> getMagneticEnergyList();

	public ArrayList<Double> getAgeList();

	public ArrayList<Double> getGravityList();

	public ArrayList<Double> getRotationList();

	public ArrayList<Double> getTemperatureList();

	public ArrayList<Double> getRadiusList();

	public ArrayList<Double> getOrbitalRadiusList();

	public ArrayList<Double> getLuminosityList();

	public ArrayList<Double> getMagFieldList();

	public ArrayList<String> getNameList();

	public void addName(String name);

	public void removeName(String name);

}